1. Field of the Invention
This invention generally relates to data storage in data processing systems and more particularly to a method for copying data from one storage device to another storage device in an open system.
2. Description of Related Art
Copying data from one location, commonly a “source location” to a second or “destination location” is well known in the art. In some situations copying provides data redundancy. In other situations providing two or more copies enables a like number of independent applications or procedures to process the copied data independently.
In one conventional approach, as particularly well known in the use of personal computers, copying is performed on a file-by-file basis between different logical volumes or between different directories on the same logical volume. The conventional device utilizes a “copy” command that specifies a path to a source and file to be copied and a path to a destination location. The processor then copies the data from the source to the destination location. During the copy process no application can access the data at either the source location or the destination location.
In other systems involving larger and more sophisticated data storage facilities, applications may operate on multiple host processors. Such facilities often have the capability of performing copying independently of other host applications. That is, while data is being copied from a source to a destination, other programs or processes can operate on data in locations other than the source or destination file locations. However, in these systems any access to the source file or the destination file is precluded until such time the copy has been completed.
Data processing systems have evolved into two arbitrary classes, namely: “mainframe systems” and “open systems”. Generally speaking “mainframe systems” refer to larger IBM and IBM-like data processing systems with a powerful set of internal input-output commands that use CKD (Count-Key-Data) data formatting. “Open systems” refer to other data processing systems that operate with different internal input-output commands and different internal protocols and an FBA (Fixed Block Architecture).
Initially large capacity data storage devices were configured for operation with mainframe systems because at the time they were the only systems that had the power and storage capacity to handle large data sets. These systems also provided a track level of control. These systems have several ways to copy data from one location to another. For example, U.S. Pat. No. 6,101,497 discloses a process for obtaining a single copy of data by logical volume essentially independently of normal processing. However, this process requires a specially configured logical storage device called a BCV device.
U.S. Pat. No. 6,363,385 (2002) to Kedem et al. discloses a method and apparatus for making independent data copies in a mainframe data processing system. Specifically, this patent discloses a method for copying a data file from a source device to a destination device in response to a copy command that can identify noncontiguous blocks of contiguous tracks. An extents track is formed to establish an environment to which the data will be copied. A calling system receives an immediate response that the copy operation is complete even though no data has been copied. Application programs may access the file in either the source or destination. The copy program transfers the file on a track-by-track basis to the destination locations in accordance with the information in the extents track. Procedures to assure that any data access to a particular track in either the source or destination by any application prior to the transfer of that track are accommodated to maintain data integrity.
More recently, however, open systems have become popular particularly with advances in networking and hardware capabilities. Open systems generally make copies on a file-by-file basis where one logical volume is involved. However, they do not have commands with the capability of handling data on a track-by-track basis. In recent times, the need for making single or multiple copies essentially independently of normal processing has become more desirable even in open systems. Moreover, it has become desirable to transfer entire logical volumes, and even to copy a subset, because in open systems logical volume transfers can actually occur more quickly. This feature exists because it is not necessary to incur the overhead of finding data blocks associated with a single file which can be at any arbitrary position in a logical volume.
It was found that the overhead involved with the method described in U.S. Pat. No. 6,363,385 introduced unacceptable delays in the process. Moreover data in an open system logical volume is at any arbitrary location within a system. Thus is there no way to identify the extent of the data to be copied other than at a logical volume level. What is therefore needed is a method adapted for both mainframe systems and open systems for copying data from a source to a destination independently essentially of any processor operation with a minimal delay between the processing of a copy command initiating a copy process and the availability of both the source and destination locations for processing by different applications.